Clone trait
自身のコピーを作ることができる
.clone()で明示的な複製をする
cloneは、時間的にもメモリ的にも高価になる可能性がある
その値が保有しているものも全てコピーするため
必要に応じて新しくメモリをallocateし、そこに値をコピーする
デフォルトでスコープに入っているのでuseしなくても使える
定義
code:rs
pub trait Clone: Sized {
fn clone(&self) -> Self;
fn clone_from(&mut self, source: &Self) { ... }
}